package com.zbs.simbot.annotations;


import com.zbs.simbot.enums.MsgType;
import com.zbs.simbot.enums.PermissionEnum;

import java.lang.annotation.*;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Func {

    /**
     * 消息正则匹配 如果为空 不匹配，不会放行
     *
     * @return String
     */
    String reg() default "";

    /**
     * 是否忽略正则 如果为true 表示 忽略正则，直接放行  默认false
     * true： 忽略正则，直接放行
     * false：以正则匹配为主 reg()
     *
     * @return false
     */
    boolean ignoreReg() default false;

    /**
     * 权限
     * master("master"),   主人
     * admin ("admin"),  群管理
     * owner ("owner"),  群主
     * all   ("all"),   群所有人 默认
     *
     * @return String
     */
    PermissionEnum permission() default PermissionEnum.ALL;

    /**
     * 机器人是否被at,如果被at直接放行，不会再去匹配reg
     * 如果没有被at，则走reg匹配 只有群消息有
     *
     * @return boolean
     */
    boolean atBot() default false;

    /**
     * 选择接收消息类型
     * @return MsgType
     */
    MsgType msgType() default MsgType.GROUP;

    /**
     * 禁用私聊后， disablePrivateCanPass 该属性设置为true 也可以访问
     * 默认false
     * @return boolean
     */
    boolean disablePrivateCanPass() default false;
}
